/**
 * 日程mongo orm模块映射
 *
 */
var mongoose = require('mongoose');
var constant = require("../conf/config").constant;
var attitude = constant.attitude;
var period = constant.period;
var	Schema = mongoose.Schema;

var ScheduleModel = new Schema({
    subject         :   {type: String, index: true, required: '主题不能为空'},
    type            :   String,     //类型
    location        :   String,     //地点
    timeScope       :   {start : {type: Date, default: Date.now}, end : {type: Date, default: Date.now}},    // 默认与timeScope一样，当后台服务执行提醒之后才会相异
    deadline        :   {type  : Date , default : new Date(8888, 11, 12)},        // 截止时间
    createTime      :   {type  : Date , default : Date.now},        // 创建时间
    isFullDay       :   Boolean,     //是否全天
    repeat          :   {type : String, default : period.NONE},
    sponsor         :   String,      //发起人

    attendees       : [new Schema({
        member : String,    // 成员id
        attitude : {type : String, default: attitude.NEUTRAL},    // 接受状态
        reason : String,    // 理由，一般拒绝时使用
        time   : {type : Date, default : Date.now},   // 接受与拒绝时间
        isCompleted: {type : Boolean, default: false}, // 当为任务时的完成情况
        description : String,   //完成任务描述
        inviter : String,    //邀请人
        remind : Number
    },{_id: false})],

    groupId         :   String,
    remind          :   Number,     //提醒（分钟数）
    remark          :   String      //备注
});

mongoose.model('Schedule', ScheduleModel);